package zx.lrn.notes.basic_grammer;

/**
 * @ClassName: FiledAssignOrder
 * @Description: 类属性的加载顺序 类属性的赋值顺序：1、为所有属性字段赋默认初始值（0、false、null） 2、按照出现的顺序，依次执行字段初始化或初始化块 3、执行构造器代码
 * @Author: zhaoxuan
 * @Date: 2020/2/24 22:35
 **/
public class FiledAssignOrder {
    private String name = "name0";
    {
        this.age = 1;
    }
    private int age = 2;

    public FiledAssignOrder() {
        this.name = "name2";
    }

    {
        this.name = "name1";
    }

    public static void main(String[] args) {
        FiledAssignOrder order = new FiledAssignOrder();
        /* name = null -> name0 -> name1 -> name2 */
        /* age = 0 -> 1 -> 2 */
        System.out.println(order.name + " " + order.age); // name2 2
    }
}
 